package apiday05.homework.day05;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * 有下列字符串:
 * 销售:张三;财务:李四;销售:王五;财务:赵六;程序:mike;程序:jerry;美工:jackson;前端:green;前端:nick;程序:钱七;销售:alice
 * 分析上述字符串然后统计每个职位总共多少人?
 * 使用Map保存统计的结果，其中key:职位,value为该职位人数
 * 然后分别输出各职位的名称(keySet),各职位人数(entrySet)
 *
 * @author Xiloer
 */
public class Test06 {
    public static void main(String[] args) {
        String str = "销售:张三;财务:李四;销售:王五;财务:赵六;程序:mike;程序:jerry;美工:jackson;前端:green;前端:nick;程序:钱七;销售:alice";
        String[] infos = str.split(";");
        Map<String, Integer> map = new HashMap<>();
//        统计每个职位人数
        for (String info : infos) {
            String[] data = info.split(":");
//            Map保存统计的结果，其中key:职位,value为该职位人数
            map.put(data[0], map.getOrDefault(data[0], 0) + 1);
        }
//        输出各职位的名称(keySet)
        Set<String> keySet = map.keySet();
        keySet.forEach(key -> System.out.println(key));
//        keySet.forEach(System.out::println);//效果等同于上一句话
//        输出各职位人数(entrySet)
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        entrySet.forEach(e -> System.out.println(e.getKey() + "，" + e.getValue() + "人"));
    }
}
